﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;


/*
 * 
 * null：会在下一帧所有的Update方法执行之后再执行后面的代码。

WaitForEndOfFrame：会在本帧结束时且这一帧显示在屏幕上之前……

WaitForSeconds：等待sec（输入参数）秒之后……

WaitForFixedUpdate：会在下一次所有的FixedUpdate方法执行完之后……

WWW：在WWW下载完成之后……

StartCoroutine：等另一个协程执行过一次之后……

WaitUntil：当输入的参数（委托）为true的时候……

WaitWhile：当输入的参数（委托）为false的时候……
 * */
public class xiecheng : MonoBehaviour
{
    public float delayedSeconds = 5f;
    private IEnumerator coroutineEnumerator;
    void Start()
    {
        coroutineEnumerator = DelayedDestroy();
        StartCoroutine(coroutineEnumerator);
    }
    IEnumerator DelayedDestroy()
    {
        Debug.Log(string.Format("Game Object will be destroyed after {0} seconds", delayedSeconds));
        yield return new WaitForSeconds(delayedSeconds);
        Destroy(this.gameObject);
    }
    
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            StopCoroutine(coroutineEnumerator);
        }
    }
}
